package util

import (
	"encoding/json"
	"fmt"
	"log"
)

func Capture(err error) {
	if err != nil {
		log.Fatalf("%s", err)
	}
}

// Capitalize 字符首字母大写
func Capitalize(str string) string {
	var upperStr string
	vv := []rune(str) // 后文有介绍
	for i := 0; i < len(vv); i++ {
		if i == 0 {
			if vv[i] >= 97 && vv[i] <= 122 { // 后文有介绍
				vv[i] -= 32 // string的码表相差32位
				upperStr += string(vv[i])
			} else {
				fmt.Println("Not begins with lowercase letter,")
				return str
			}
		} else {
			upperStr += string(vv[i])
		}
	}
	return upperStr
}

func JsonPrint(a interface{}) {
	jsons, errs := json.Marshal(a) //转换成JSON返回的是byte[]
	if errs != nil {
		panic(errs)
	}
	fmt.Println(string(jsons))
}

func Copy(src, dst interface{}) {
	jsons, err := json.Marshal(src) //转换成JSON返回的是byte[]
	if err != nil {
		panic(err)
	}

	if err = json.Unmarshal(jsons, dst); err != nil {
		panic(err)
	}
}
